[Python] 引用上级目录

最近项目中需要用到与当前脚本所在目录同级的另一个目录下的文件,大概目录结构如下

1
2
3
4
5
codes/
|--muodule_a/
|--a.py
|--muodule_b/
|--b.py

换句话说就是,a.py希望能调用到b.py

试了一些网上的方法,一个比较有效的方法是在脚本的开头将上级目录添加至sys.path

1
2
3
4
import sys
sys.path.append('这里写上级目录的绝对路径')

from b import B

但是这样会存在一个明显的问题,因为使用了绝对路径,所以每次项目更换路径,就需要改动很多脚本。

最后我自己想到了一个解决方案,即从当前目录中提取出上级目录。虽然不太美观,但是勉强能用。如果有其他思路或者更好的方法欢迎斧正,希望能和大家交流~

1
2
3
4
5
6
7
8
9
10
import os
import sys

def get_parent_dir(cur_dir):
cur_dir = cur_dir.split("/")
cur_dir.pop()
return "/".join(cur_dir_list)
sys.path.append(get_parent_dir(os.getcwd()))

from b import B